#define _CRT_SECURE_NO_WARNINGS
#include"SList.h"


void SLTTest1()
{
	SLTNode* phead = NULL;

	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPushBack(&phead, 4);
	SLTPrint(phead);

	SLTPushFront(&phead, 0);
	SLTPushFront(&phead, 1);
	SLTPushFront(&phead, 2);
	SLTPushFront(&phead, 3);
	SLTPopBack(&phead);

	SLTPrint(phead);

}


void SLTTest2()
{
	SLTNode* phead = NULL;

	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPushBack(&phead, 4);
	SLTPrint(phead);
	SLTPopBack(&phead);
	SLTPopBack(&phead);
	SLTPopBack(&phead);
	SLTPopFront(&phead);
	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPushBack(&phead, 4);
	SLTPopFront(&phead);
	SLTPopFront(&phead);

	SLTPrint(phead);

}

void SLTTest3()
{
	SLTNode* phead = NULL;

	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPushBack(&phead, 4);
	SLTPrint(phead);

	SLTNode* pos = SLTFind(phead, 3);
	if (pos != NULL)
	{
		SLTErase(&phead, pos);
	}
	SLTPrint(phead);

	SLTNode* pos1 = SLTFind(phead, 1);
	if (pos1 != NULL)
	{
		SLTErase(&phead, pos1);
	}
	SLTPrint(phead);

	SLTNode* pos2 = SLTFind(phead, 2);
	if (pos2 != NULL)
	{
		SLTErase(&phead, pos2);
	}
	SLTPrint(phead);

	SLTNode* pos3 = SLTFind(phead, 4);
	if (pos3 != NULL)
	{
		SLTInsert(&phead, pos3,1);
	}
	SLTPrint(phead);
}

int main()
{
	//SLTTest1();
	//SLTTest2();
	SLTTest3();

	return 0;
}
